1. Technical Field
The present invention relates to heterogeneous architectures and, more particularly, to systems and methods for data-aware scheduling of legacy kernels in heterogeneous platforms.
2. Description of the Related Art
Heterogeneous platforms are those with both a multi-core central processing unit (CPU) and a many-core accelerated processor such as a graphics processing unit (GPU). To realize the higher performance that such platforms can deliver, however, programmers need intimate knowledge of the GPU architecture. In order to help the common programmer develop code for such platforms, GPU implementations of several “kernels” are made available as libraries. Thus each library kernel has both a CPU and GPU implementation.
Even if such libraries are available, however, a runtime that can decide how to schedule the kernel (on the CPU or GPU) is important for optimal performance. A kernel may be faster on the CPU or GPU depending on the size of its parameters and location of its arguments. This is especially true in heterogeneous platforms that have distributed memory, where the CPU and GPU sub-systems are connected by a non-coherent interconnect and there is no shared memory.